home *** CD-ROM | disk | FTP | other *** search
- /**************************************************************************************************
- * XFunctions.c
- *
- * Written By: Brian Powell
- * (c) 1991, All Rights Reserved.
- *
- * This contains all of the code responsible for calling routines within Imagic. Imagic
- * sends an array of ProcPtr's to the external function which are then called here when the
- * programmer uses one of my library routines. These are the routines.
- *
- *************************************************************************************************/
-
- #include "XFunctionNumbers.h"
- #include "XFunctions.h"
-
- /* External Globals */
- extern const ProcPtr (*(**functions)());
-
-
- /* This is where all of the functions are held */
-
- /**************************************************************************************************
- * I M A G E U T I L I T I E S
- *************************************************************************************************/
-
- pascal ImageHandle NewBlankImage(name, xsize, ysize, visible, topleft, botright, projection)
- StringPtr name;
- int xsize, ysize;
- Boolean visible;
- Point *topleft;
- Point *botright;
- short projection;
- {
- return ((ImageHandle)((functions[NEWBLANKIMAGE])(xsize, ysize, visible, name, topleft,
- botright, projection)));
- }
-
- pascal ImageHandle CopyImage(image)
- ImageHandle image;
- {
- return ((ImageHandle)((functions[COPYIMAGE])(image)));
- }
- pascal void GetImageSize(image, x, y)
- ImageHandle image;
- int *x, *y;
- {
- (functions[GETIMAGESIZE])(image, x, y);
- }
-
- pascal Boolean BeginImageWork(image, NeedUndo)
- ImageHandle image;
- Boolean NeedUndo;
- {
- if (image == NIL) return FALSE;
- return((Boolean)(functions[BEGINIMAGEWORK])(image, NeedUndo));
- }
-
- pascal void EndImageWork(image)
- ImageHandle image;
- {
- (functions[ENDIMAGEWORK])(image);
- }
-
- pascal int GetPixVal(image, xloc, yloc)
- ImageHandle image;
- int xloc, yloc;
- {
- return ((int)((functions[GETPIXVAL])(image, xloc, yloc)));
- }
-
- pascal void SetPixVal(image, xloc, yloc, value)
- ImageHandle image;
- int xloc, yloc;
- PixelVal value;
- {
- (functions[SETPIXVAL])(image, xloc, yloc, value);
- }
-
- pascal void GetPixLineVal(image, vals, line, x)
- ImageHandle image;
- PixelValPtr *vals;
- int line, x;
- {
- (PixelValPtr)(functions[GETPIXLINEVAL])(image, vals, line, x);
- }
-
- pascal void SetPixLineVal(image, values, line, x)
- ImageHandle image;
- PixelValPtr values;
- int line, x;
- {
- (functions[SETPIXLINEVAL])(values, image, line, x);
- }
-
- pascal void PixToScaledVal(image, values, newvals)
- ImageHandle image;
- PixelValPtr values;
- ScaledValPtr *newvals;
- {
- (functions[PIXTOSCALEDVAL])(image, values, newvals);
- }
-
- pascal void ScaledValToPix(image, values, newvals)
- ImageHandle image;
- ScaledValPtr values;
- PixelValPtr *newvals;
- {
- (functions[SCALEDVALTOPIX])(image, values, newvals);
- }
-
- pascal ImageHandle GetTopImage()
- {
- return ((ImageHandle)((functions[GETTOPIMAGE])()));
- }
-
- pascal StringPtr GetImageName(image)
- ImageHandle image;
- {
- return ((char *)(functions[GETIMAGENAME])(image));
- }
-
- pascal void EraseImage(image)
- ImageHandle image;
- {
- (functions[ERASEIMAGE])(image);
- }
-
- pascal void DisposImage(image)
- ImageHandle image;
- {
- (functions[DISPOSIMAGE])(image);
- }
-
- pascal void GetImageGeography(image, topleft, botright, projection)
- ImageHandle image;
- Point *topleft;
- Point *botright;
- short *projection;
- {
- (functions[GETIMAGEGEOGRAPHY])(image, topleft, botright, projection);
- }
-
- pascal void PixToLatLon(image, x, y, lat, lon)
- ImageHandle image;
- int x, y;
- double *lat, *lon;
- {
- (functions[PIXTOLATLON])(image, x, y, lat, lon);
- }
-
- pascal void LatLonToPix(image, lat, lon, x, y)
- ImageHandle image;
- double lat, lon;
- int *x, *y;
- {
- (functions[LATLONTOPIX])(image, lat, lon, x, y);
- }
-
- pascal void CopyCTable(image, newimage)
- ImageHandle image, newimage;
- {
- (functions[COPYCTABLE])(image, newimage);
- }
-
- /**************************************************************************************************
- * U S E R I N T E R F A C E U T I L I T I E S
- *************************************************************************************************/
-
- pascal Boolean CreateProgressDialog(name, value)
- StringPtr name;
- int value;
- {
- return ((Boolean)((functions[CREATEPROGRESSDIALOG])(name, value)));
- }
-
- pascal Boolean UpdateProgressDialog(value)
- int value;
- {
- return((Boolean)((functions[UPDATEPROGRESSDIALOG])(value)));
- }
-
- pascal void DisposProgressDialog()
- {
- (functions[DISPOSPROGRESSDIALOG])();
- }
-
- pascal int CreateDialog(text, Label1, Label2, Label3, beep)
- StringPtr text, Label1, Label2, Label3;
- Boolean beep;
- {
- return ((int)((functions[CREATEDIALOG])(text, Label1, Label2, Label3, beep)));
- }
-
- pascal void MessageDialog(title, beep)
- StringPtr title;
- Boolean beep;
- {
- (functions[CREATEDIALOG])(title, (StringPtr)"Ok", NULL, NULL, beep);
- }
-
- pascal ImageHandle **GetImageList(min, max, message, nFiles)
- int min, max;
- StringPtr message;
- int *nFiles;
- {
- return ((ImageHandle **)(functions[GETLISTOFIMAGES])(min, max, message, nFiles));
- }
-
- pascal int GetVersion()
- {
- return ((int)(functions[GETVERSION])());
- }
-
- pascal Boolean TextFilter(theDialog, event, item)
- DialogPtr theDialog;
- EventRecord *event;
- int *item;
- {
- return ((Boolean)(functions[TEXTFILTER])(theDialog, event, item));
- }
-
- pascal void PlaceWindow(theWindow, x, y)
- WindowPtr theWindow;
- int x,y;
- {
- (functions[PLACEWINDOW])(theWindow, x, y);
- }
-
- pascal void OutlineButton(theDialog, item)
- DialogPtr theDialog;
- int item;
- {
- (functions[OUTLINEBUTTON])(theDialog, item);
- }
-
- /**************************************************************************************************
- * M E M O R Y M A N A G E R U T I L I T I E S
- *************************************************************************************************/
-
- pascal Handle CreateNewHandle(size)
- Size size;
- {
- return ((Handle)((functions[CREATENEWHANDLE])(size)));
- }
-
- pascal Ptr CreateNewPtr(size)
- Size size;
- {
- return ((Ptr)((functions[CREATENEWPTR])(size)));
- }
-
- pascal void DestroyHandle(theHandle)
- Handle theHandle;
- {
- (functions[DESTROYHANDLE])(theHandle);
- }
-
- pascal void DestroyPtr(thePtr)
- Ptr thePtr;
- {
- (functions[DESTROYPTR])(thePtr);
- }
-
-
-
-
-
-
-
-
-
-
-
-
- /**************************************************************************************************
- * NOT IMPLEMENTED...
- *************************************************************************************************/
-
- /* This is currently not implemented because the variable argument list uses the
- * registers to manipulate the data which is BAD, BAD for the XModules. They rely
- * on the registers to stay approximately the same, esp. A0 & A4. This may be
- * implemented later.
- *
- * pascal OSErr dialogprintf(char *fmt, ...)
- * {
- * char string[400];
- * va_list args;
- *
- * va_start(args, fmt);
- * vsprintf(string, fmt, args);
- * va_end(args);
- * CtoPstr(string);
- * return;
- * return ((functions[0])(string, "\pOk", NULL, NULL, TRUE));
- * }
- *
- */
-